package com.xiaohai.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaohai.projo.Student;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaohai.projo.dto.StudentDto;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author xiaohai
 * @since 2024-01-22
 */
@Transactional
public interface StudentService extends IService<Student> {
    /**
     * 新增学生
     *
     * @param student
     * @return
     */
    boolean add(Student student);

    /**
     * 修改信息
     *
     * @param student
     * @return
     */

    boolean updateInfo(Student student);

    /**
     * 跟新密码
     *
     * @param account
     * @param newPassword
     * @return
     */
    boolean updatePasswordByAccount(String account, String newPassword);

    /**
     * 获取所有学生信息
     *
     * @param currentPage
     * @param pageSize
     * @param studentName
     * @return
     */
    Page<StudentDto> mylist(Integer currentPage, Integer pageSize, String studentName, String majorName, String className, Integer identity, String grade, String account);

    /**
     * 根据id获取学生信息
     *
     * @param id
     * @return
     */
    StudentDto detail(String id);

    /**
     * 根据id修改信息
     *
     * @param student
     * @return
     */
    Boolean myUpdate(Student student);

    /**
     * 根据id删除学生；1.先查看该学生是否存在分数，不存在则删除
     *
     * @param id
     * @return
     */
    boolean delete(Integer id);

    /**
     * 批量添加学生
     *
     * @param students
     * @return
     */
    Boolean batchAdd(List<Student> students);

    /**
     * 根据班级id查询是否存在学生
     *
     * @return
     */
    Boolean isEmptyByClassId(Integer id);

    /**
     * 获取学校的男女比列
     *
     * @return
     */
    List<HashMap<String, Integer>> getMenWomen();

    /**
     * 班级成绩分析
     *
     * @return
     */
    List<HashMap<String, Integer>> list1(Integer identity, String name, String account);

}
